Beispiel: Verwenden der Bibliothek OPC UA PubSub SL
ProduktCODESYS OPC UA PubSub SL
Das Beispiel OPC UA PubSub SL Example.project
zeigt, wie die Bibliothek OPC UA PubSub SL verwendet wird, um Nachrichten über das von OPC UA Foundation definierte Pub/Sub-Protokoll auszutauschen.
Das Package enthält ein zweites Beispiel PubSubDataSet.project
. Es zeigt, wie die Bibliothek OPC UA PubSub SL verwendet wird, um verschiedene Datensätze bereitzustellen und mit GVL-Instanzen zu verbinden.
Beschreibung
Die Kommunikation über das OPC UA Pub/Sub-Protokoll stellt neben der Client/Server-Kommunikation eine weitere Möglichkeit bereit, um Daten gmäß den Regeln der OPC UA Foundation zwischen den Teilnehmern eines Netzwerks auszutauschen.
Die Struktur der Daten (DataSet
) ist frei definierbar und wird im Voraus zwischen Sender und Empfänger vereinbart. Dadurch entfällt der Transport von zusätzlichen (Meta-)Daten. Der Datentransfer erfolgt mit Hilfe der Bibliothek OPC UA PubSub SL über UDP/IP nach den für UADP definierten Regeln.
Ein sogenannter "Publisher" veröffentlicht seine Daten an eine ihm unbekannte Anzahl von "Subscribern". Sender und Empfänger kennen sich also nicht. Daher hat die Anzahl der Empfänger auch keine Rückwirkung auf den Sender. Eine Rückmeldung an den Sender, ob seine Nachrichten die Empfänger erreicht haben, kann prinzipbedingt nicht über das Protokoll erfolgen. Bei Bedarf muss eine solche Rückmeldung applikationsspezifisch verwaltet werden.
Die Daten werden in einem binären Format nach den Regeln der OPC UA Foundation übertragen. Die Konvertierung der IEC-Datentypen in die entsprechenden OPC UA-Datentypen und umgekehrt wird von der Bibliothek OPC UA PubSub SL
übernommen.
Die Implementierung folgt folgenden Profilen:
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
Die Nachrichtenlänge ist auf 1500 Bytes (MTU) begrenzt ("Chunked NetworkMessages" werden nicht unterstützt). Solange die Regeln für ein "Time Sensitive Network" noch nicht zur Verfügung stehen, können keine harten Echtzeitbedingungen erfüllt werden. Die Implementierung der OPC UA PubSub SL
-Bibliothek zielen jedoch darauf ab, den Jitter so gering wie möglich zu halten.
Die Bibliothek enthält folgende Funktionsbausteine:
DataSet
:Definiert eine
DataSet
-MessageConfiguration
:Verwaltet gemeinsame Ressourcen wie beispielsweise Connection oder Group
RootDiagnostics
:Informiert mit übergeordneten Diagnosedaten
Connection
:Verwaltet die Verbindung zu Publisher und Subscriber
ConnectionDiagnostics
:Informiert mit Diagnosedaten über die Verbindung (
Connection
)ReaderGroup
:Verwaltet
Reader
-Bausteine (Bildung einer Network-Message ausDataSet
-Messages)ReaderGroupDiagnostics
:Informiert mit Diagnosedaten über die
ReaderGroup
Reader
:Verwaltet den
DataSet
-Baustein (Subscriber)ReaderDiagnostics
:Informiert mit Diagnosedaten über einen
Reader
-BausteinWriterGroup
:Verwaltet
Writer
-Bausteine (Bildung einer Network-Message ausDataSet
-Messages)WriterGroupDiagnostics
:Informiert mit Diagnosedaten über die
WriterGroup
Writer
:Verwaltet einen
DataSet
-Baustein (Publisher)WriterDiagnostics
:Informiert mit Diagnosedaten über einen
Writer
-Baustein
![]() |
Unterstützte Funktionalität
Publish/Subscribe von Nachrichten gemäß OPC 10000-14: OPC Unified Architecture Part 14: PubSub Release 1.04
Maximale Größe einer Network-Message: 1500 Bytes
Die aktuelle Packetgröße und Größe der Nutzdaten (Payload) ist über die Konfiguration der jeweiligen ReaderGroup/WriterGroup und
DataSet
-Bausteine konfigurierbar .Unterstützung mit einer Hintergrundtask für den jeweiligen
Connection
-BausteinFolgende Profile werden unterstützt:
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
Weitere Informationen
Die Applikation Device_1
veranschaulicht das Lesen von NetworkMessage
.
Die Applikation Device_2
zeigt, wie Nachrichten über die enthaltenen Funktionsbausteine gesendet werden.
Hardware
Sie benötigen zwei CODESYS-Steuerungen, die über ein Netzwerk verbunden sind, das UDP Multicast unterstützt.
Passen Sie im Projekt die Gerätekonfiguration an die Geräte an, indem Sie
Device_1
undDevice_2
auf die verwendete Hardware aktualisieren.
Anpassungen im Projekt
Stellen Sie die IP-Adressen in der GVL
GlobalIP
auf die von Ihnen konfigurierte Hardware ein. Die GVL finden Sie im Bereich POUs.Setzen Sie die Multicast-Adresse auf eine freie Adresse in Ihrem Netzwerk.
Hinweis: Wenn Sie sich nicht in einem privaten Netzwerk befinden, lassen Sie sich von Ihrem Netzwerk-Administrator eine freie Adresse zuweisen.
Legen Sie den Port fest. Der voreingestellte Port 4840 ist der standardmäßig empfohlene Port für OPC UA PubSub.
Loggen Sie sich auf beiden Steuerungen ein und starten Sie die Applikationen.
Starten Sie sowohl Sender als auch Empfänger:
Device_2: PLC_PRG.xEnable := TRUE
Device_1: Communication_PRG.xEnable := TRUE
Sie sollten nun auf der Empfängerseite sehen, wie sich die Werte des Sinus ändern. Sie können die anderen Werte im Sender manuell ändern und die Änderungen im Empfänger sehen.
Fügen Sie eine Variable zum bereits übertragenen DataSet
hinzu.
Erweitern Sie
SensorDataSet._aIndex
um einen Eintrag. Wählen Sie einen beliebigen Datentyp.Passen Sie in
SensorDataSet.Init
die Version vonDataSet
an, indem Sie den Eintrag für das Datum aktualisieren.Erstellen Sie im Programm
PLC_PRG
des Senders eine Variable des gewählten Datentyps. Weisen Sie der Variablen den WerttxSensorDataSet.PrepareValues
zu.Wiederholen Sie diesen Schritt auf der Empfängerseite in
rxSensorDataSet.PrepareValues
. Erstellen Sie auch hier zuvor eine neue Variable des gleichen Typs.Führen Sie einen einem erneuten Download aus.
Die neue Variable sollte mit übertragen werden.
![]() |
Systemvoraussetzungen und Einschränkungen
Programmiersystem | CODESYS Development System Version 3.5.17.0 oder höher |
Laufzeitsystem | CODESYS Control Win Version 3.5.14.0 AnmerkungJe nach Ausstattung des jeweiligen Laufzeitsystems können die Nachrichten per Unicast, Multicast oder Broadcast versendet werden. |
Unterstützte Plattformen/Geräte | TippVerwenden Sie das Projekt |
Einschränkungen |
|
Zusatzkomponenten | CODESYS OPC UA PubSub SL |
Hinweis
DOWNLOAD Projekt